﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Crosland.Automotriz.Core;
namespace Crosland.Automotriz.Data.Dao.Linq
{
    public class clsLog_Sus_ArtDAO
    {

        private AutomotrizEntities ContextoDeObjs = new AutomotrizEntities();
        public bool Insertar(T_LOG_ARTICULO_RELACIONADO Obj)
        {
            try
            {
                ContextoDeObjs.AddObject("T_LOG_ARTICULO_RELACIONADO", Obj);
                ContextoDeObjs.SaveChanges();
            }
            catch (Exception e)
            {
                throw new Exception("Error al guardar en base de datos .", e);
            }
            return true;
        }



        public bool ModificarRelacion(V_UPDATE_RELACIONAR_ART obj)
        {
            try
            {
                ContextoDeObjs.AttachTo("V_UPDATE_RELACIONAR_ART", obj);
                ContextoDeObjs.ObjectStateManager.ChangeObjectState(obj, System.Data.EntityState.Modified);
                ContextoDeObjs.SaveChanges();
            }
            catch (Exception)
            {
                return false;

            }
            return true;
        }





        public bool Eliminar(T_LOG_ARTICULO_RELACIONADO obj)
        {
            try
            {
                ContextoDeObjs.AttachTo("T_LOG_ARTICULO_RELACIONADO", obj);
                ContextoDeObjs.DeleteObject(obj);
                ContextoDeObjs.SaveChanges();
            }
            catch (Exception)
            {
                return false;
            }
            return true;
        }




        public bool PA_EliminarDetalle(string cod_material,string cod_material_sus)
        {
            using (AutomotrizEntities bd = new AutomotrizEntities())
            {
                bd.ExecuteStoreCommand("exec PA_DELETE_LOG_SUS_ART '" + cod_material + "','" + cod_material_sus + "'");

             

                return true;
            }

        }





        public bool Actualizar_log_sus_art(int id_material,string cod_mat_sus,string observacion,int id_sus_art_mae,decimal cantidad)
        {
            try
            {

                ContextoDeObjs.ExecuteStoreCommand("exec USP_UPDATE_LOG_SUS_ART "+id_material+",'"+cod_mat_sus+"','"+observacion+"',"+id_sus_art_mae+","+cantidad+"");
                return true;
            }
            catch
            {
                return false;
            }


        }





        public List<T_LOG_ARTICULO_RELACIONADO_TIPO> listarMae()
        {

            List<T_LOG_ARTICULO_RELACIONADO_TIPO> lista = new List<T_LOG_ARTICULO_RELACIONADO_TIPO>();
            try
            {
                var q = from c in ContextoDeObjs.T_LOG_ARTICULO_RELACIONADO_TIPO
                        select c;
                lista = q.ToList();

            }
            catch (Exception)
            {
            }
            return lista;
        }

        public List<V_Log_Articulos_Relacionados> listarDetalle(string codArtMae)
        {

            List<V_Log_Articulos_Relacionados> lista = new List<V_Log_Articulos_Relacionados>();
            try
            {
                var q = from c in ContextoDeObjs.V_Log_Articulos_Relacionados
                        where c.COD_MATERIAL == codArtMae
                        
                        select c;
                lista = q.ToList();

            }
            catch (Exception)
            {
            }
            return lista;
        }
    }
}
